<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 练习1
      function createObject() {
    // 1.	创建一个空的对象 user。
    let user = {};
    //[代码]
    // 2.	为这个对象增加一个属性，键是 name，值是 John。
    user.name = "John";
    //[代码]
    // 3.	再增加一个属性，键是 username，值是 Smith。
    //[代码]
    user.username = "Smith";
    // 4.	把键为 name 的属性的值改成 Pete。
   // [代码]
    user.name = "Pete";
    // 5.	删除这个对象中键为 name 的属性。
    //[代码]
    delete user.name;
    console.log(user);
  }
  createObject(); // 等同于 window.createObject();

      // 练习2
      function sumSalary() {
    let salaries = {
      John: 100,
      Ann: 160,
      Pete: 130,
    };
    // 写一段代码遍历salaries对象，以求出工资总和，将计算结果保存到变量sum
    let sum = 0;
    for(let key in salaries){
       sum = sum + salaries[key];
    }
    //[代码]
    console.log(sum);
  }
  sumSalary(); // 等同于 window.sumSalary();
      // 练习3
      const calculator = {
        a: 0,
        b: 0,
        // 定义方法setValue(a, b)，将方法参数a，b的值赋给对象属性a，b。
      setValue(a,b){
            this.a = a;
            this.b = b;
      },
        // 定义方法sum()，返回对象属性a，b的和。
       sum(){
         return this.a + this.b;
       },
        // 定义方法mul()，返回对象属性a，b的积。
        mul(){
         return this.a * this.b;
        },
        
      };
      console.log(calculator.sum());
      calculator.setValue(10, 10);
      console.log(calculator.mul());

      // 练习4
      function User(name) {
        this.name = name;
        this.sayHi = function () {
          console.log("My name is: " + this.name);
        };
      }
      // 使用new关键字，调用构造方法User，创建User对象peter，name为'Peter'
      let peter = new User("Peter");
      // 调用peter对象的sayHi方法
       peter.sayHi();
      // 练习5

    </script>
  </body>
</html>
